package com.kmxd.ams.client.archive.dto;

import io.swagger.v3.oas.annotations.media.Schema;
import java.io.Serializable;
import java.util.Date;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import lombok.Data;

/**
 * 整理规则-规则字段
 *
 * @author nickbi
 * @since 2022-07-30
 */
@Schema(description = "整理规则-规则字段对象")
@Data
public class ArchiveRuleFieldEditDTO implements Serializable {

  private static final long serialVersionUID = 1L;

  /** 主键ID */
  @Schema(description = "主键ID")
  private Long id;

  /** 门类配置id 将s_archive_rule表中的arch_type_id冗余过来，便于查询 */
  @Schema(description = "门类配置id 将s_archive_rule表中的arch_type_id冗余过来，便于查询")
  @NotNull(message = "门类配置id 将s_archive_rule表中的arch_type_id冗余过来，便于查询不能为空")
  private Long archTypeId;

  /** 规则id 关联s_archive_rule表主键 */
  @Schema(description = "规则id 关联s_archive_rule表主键")
  @NotNull(message = "规则id 关联s_archive_rule表主键不能为空")
  private Long ruleId;

  /** 字段英文名称 */
  @Schema(description = "字段英文名称")
  @NotBlank(message = "字段英文名称不能为空")
  private String fieldCode;

  /** 字段中文名称 */
  @Schema(description = "字段中文名称")
  @NotBlank(message = "字段中文名称不能为空")
  private String fieldName;

  /** 排序 */
  @Schema(description = "排序")
  @NotNull(message = "排序不能为空")
  private Integer sort;

  /** 类型 */
  @Schema(description = "类型: 1元数据字段，2固定内容")
  private Integer type;

  /** 创建人 */
  @Schema(description = "创建人")
  private Long createBy;

  /** 创建时间 */
  @Schema(description = "创建时间")
  private Date createTime;

  /** 更新人 */
  @Schema(description = "更新人")
  private Long updateBy;

  /** 更新时间 */
  @Schema(description = "更新时间")
  private Date updateTime;

  /** 表名 */
  @Schema(description = "表名")
  @NotBlank(message = "表名不能为空")
  private String tableId;

  /** 启用分组:0不启用,1启用 */
  @Schema(description = "启用分组:0不启用,1启用")
  private Boolean enableGroup;

  /** 启用盒分组:0不启用,1启用 */
  @Schema(description = "启用盒分组:0不启用,1启用")
  private Boolean enableBoxGroup;

  /** 前置拼接字段 */
  @Schema(description = "前置拼接字段")
  private String spliceField;

  /** 流水字段:0不启用,1启用 */
  @Schema(description = "流水字段:0不启用,1启用")
  private Boolean enableIncrement;

  /** 字典相关字典使用value还是name */
  @Schema(description = "字典相关字典使用value还是name")
  private String dictField;
}
